# -*- coding: utf-8 -*-
# Author: xiantingDeng
# File: file_util.py
# Time: 15:16

import os
import time


def get_root_dir():
    '''
    获取当前项目根路径
    :return: 返回当前项目路径
    '''
    return os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))


def get_sub_dir(sub_dir_name):
    '''
    获取项目子目录下的路径
    :param sub_dir_name: 项目子目录下的名称
    :return: 返回当前获取到的项目路径
    '''
    return os.path.join(get_root_dir(), sub_dir_name)


def get_log_dir():
    '''
    获取log日志下的绝对路径
    :return: 返回log日志绝对路径
    '''
    return os.path.join(get_output_dir(), "log")


def get_output_dir():
    '''
    获取output项目路径
    :return: 返回获取到的项目路径
    '''
    return os.path.join(get_root_dir(), "output")


def get_real_output_dir(dir_name):
    '''
    获取output文件夹下子文件夹目录
    :param dir_name: 文件名称
    :return: 返回文件路径
    '''
    return os.path.join(get_output_dir(), dir_name)


def get_real_ini_dir(dir_name):
    '''
    获取config文件夹下子文件目录的ini文件
    :param dir_name: 文件名称
    :return: 返回文件夹目录绝对路径
    '''
    return os.path.join(get_sub_dir("config"), dir_name)


def get_report_file_path():
    '''
    动态生成report目录文件下绝对路径
    :return: 返回report测试绝对路径
    '''
    times = time.strftime("%Y-%m-%d_%H", time.localtime())
    file_path = os.path.join(get_sub_dir("report"), times)
    return file_path


def get_screenshot_path():
    '''
    动态创建截图路径
    :return: 返回截图路径
    '''
    img_file = get_real_output_dir("img")
    path = os.path.join(img_file, time.strftime("%Y-%m-%d_%H_%M_%S", time.localtime()))
    isExists = os.path.exists(path)
    if not isExists:
        os.makedirs(path)
        return path
    else:
        return False


def get_img_file_path(img_name):
    '''
    生成截图路径
    :param img_name: 文件名称
    :return: 返回获取到的截图路径
    '''
    file = f"{img_name}.png"
    file_path = os.path.join(get_screenshot_path(), file)
    return file_path


def get_data_file_path(data_naem):
    '''
    获取data下的文件路径
    :param data_naem: 文件名称
    :return: 返回data下的绝对路径
    '''
    return os.path.join(get_sub_dir("data"), data_naem)


def get_data_yaml(name):
    '''
    获取data/yaml目录下的文件
    :param name: 文件名称
    :return: 返回文件绝对路径
    '''
    return os.path.join(get_data_file_path("yaml"), name)


def get_data_newtheme(name):
    '''
    获取data/newthemen目录下的文件
    :param name: 文件名称
    :return: 返回文件绝对路径
    '''
    return os.path.join(get_data_file_path("newtheme"), name)


if __name__ == '__main__':
    print(get_data_newtheme("login.yaml"))
